#include<graphics.h>

#include<conio.h>



#pragma comment(lib,"Winmm.lib")



#define High 864

#define Width 591



IMAGE img_bk;

int position_x, position_y;

int bullet_x, bullet_y;

IMAGE img_planeNoemal1, img_planeNoemal2;

IMAGE img_bullet1, img_bullet2;

	void startup()

	{

		initgraph(Width, High);

		loadimage(&img_bk, "");

		loadimage(&img_planeNormall, "");

		loadimage(&img_planeNormal2, "");

		loadimage(&img_bullet1, "");

		loadimage(&img_bullet2, "");

		position_x = High * 0.7;

		position_yWidth * 0.5;

		bullet_x = position_x;

		bullet_y = -85;

		BeginBatchDraw();

	}



	void show()

	{

		putimage(0, 0, &img_bk);

		putimage(position_x - 50, position_y - 60, &img_planeNormall, NOTSRCERASE);

		putimage(position_x - 50, position_y - 60, &img_planeNormal2, SRCINVERT);

		putimage(bullet_x - 7, bullet_y, &img_bullet1, NOTSRCERASE);

		putimage(bullet_x - 7, bullet_y, &img_bullet2, SRCINVERT);

		FlushbatchDraw();

		sleep(2);

	}



	void updateWithoutInput()

	{
		if (bullet_y > -25)
			bullet_y = bullet_y - 3;
	}



	void updateWidthInput()

	{

		MOUSEMSG m;

		while (MouseHit())

		{

			m = GetMouseMsg();

			if (m.uMsg == WM_MOUSEMOVE)

			{

				position_x = m.x;

				position_y = m.y;

			}
			else if (m.uMsg == WM_LBUTTONDOWN)
			{
				bullet_x = position_x;
				bullet_y = position_y - 85;
			 }

		}

	}



	void gameover()

	{

		EndBatchDraw();

		getch();

		closegraph();

	}



	int main()

	{

		startup();

		while (1)

		{

			show();

			updateWithoutInput();

			updateWithInput();

		}

		gameover();

		return 0;

	}